1. Field of the Invention
The present invention relates generally to an apparatus and method for controlling the behavior of a computer program, and more particularly, to an apparatus and method for enabling a user to change the behavior of a computer program during execution.
2. Related Art
During development of integrated circuits and other devices, a test environment should enable a development engineer to make many changes to how a test program executes on a testing system. During production, however, the test environment should not enable the operator of the testing system to modify the test program.
A first conventional approach to providing such a development environment is for the test engineer to implement desired changes by changing the source code of the test program. This approach has the disadvantage of being time-consuming and difficult to implement. Each time a change in the test program is desired, the development engineer must implement the change in a programming language. This could be difficult because the desired behavior of a test program is generally difficult to implement using a conventional programming language. This would especially be true if the development engineer were not highly skilled in computer programming, as is often the case.
Furthermore, this approach requires that the engineer stop the test, recompile the test program, and then restart the test. Each change to the test program thus requires a substantial amount of time.
A second conventional approach is a test environment which enables the user to modify the test program by modifying the test program initialization information. This eliminates the need to recompile the test program. However, because the test program must be stopped and restarted, the feedback loop for getting results from modified tests is still quite long.
A third conventional approach is a testing environment in which changes are made through a command line interface. Again, modifications to the test program would not require recompilation, but may require the engineer to stop the test program and restart it. Furthermore, the engineer must be familiar with the commands supported by the interface and be able to enter them in a timely manner. Furthermore, there is a risk that the operator could modify the test program.
Therefore, what is needed is a test environment which enables the test engineer to quickly and easily modify the test program but which precludes the operator from doing so.